Hồi quy (regression) là cách tiếp cận xây dựng mô hình toán học (công thức toán) để biểu diễn mối quan hệ giữa một biến \(y\) với một hay nhiều biến \(x\). Theo nghĩa rộng thì đặc tính của các biến \(x\) và \(y\) có thể là biến liên tục (continuous variable), biến số đếm (discrete quantitative variable) hay biến phân loại (discrete qualitative hay categorical varaible).
Hồi quy tuyến tính đơn biến là dạng căn bản và đơn giản nhất của các mô hình hồi quy.
Hồi quy tuyến tính (simple linear regression model - SLR) theo cách hiểu thông thường \(y = ax + b\) hay \(y = b_0 + b_1x\) là mô hình toán học biểu diễn mối quan hệ giữa hai biến định lượng (continuous variable) là \(x\) và \(y\).
Trong đó biến \(x\) gọi là biến độc lập (independent), biến tiên lượng (predictor), biến giải thích (explanatory) hay là biến hồi quy (regressor), còn biến \(y\) là biến phụ thuộc (dependent), biến dự báo/dự đoán (predicted), biến phản hồi (response) hay là biến hồi quy phụ thuộc (regressand).
Mô hình hồi quy tuyến tính này, có tên gọi cụ thể là hồi quy tuyến tính đơn biến đa thức bậc 1 khi chỉ sử dụng 1 biến \(x\) (bậc 1, lũy thừa 1) để dự đoán cho biến \(y\). Tên gọi mô hình này là Ordinary least squares (OLS) hay là hồi quy tuyến tính theo phương pháp bình phương tối thiểu theo kiểu bình thường (ordinary) là một loại trong các mô hình hồi quy tuyến tính linear regression1.
Mô hình hồi quy tuyến tính hay gọi là mô hình thống kê (model statistics) về bản chất là công thức toán biểu diễn mối quan hệ giữa các biến (các tham số trong công thức đó) với các miền giá trị của từng tham số. Chi tiết tham khảo ở link này2.
Cần lưu ý là giữa hai biến \(x\) và \(y\) trong ngữ cảnh nói về sự hồi quy (regression) là ta xác định biến nào là biến độc lập, biến nào là biến phụ thuộc, còn trong ngữ cảnh khi nói về sự tương quan (correlation) thì ta chỉ xét về mức độ dao động của cả hai biến xem có cùng tăng hay cùng giảm hay không. Vì vậy phân tích tương quan là cơ sở để ta làm phân tích hồi quy.
2 Đọc kết quả của phương trình hồi quy tuyến tính
Đồ thị bên dưới cho thấy mối quan hệ giữa đường kính thân cây và thể tích thân cây có mối quan hệ tương quan tỷ lệ thuận. Công thức \(y = -36.94 + 5.07 \times x\) có \(b_0 = -36.94\) là hệ số chặn (intercept/constant) là giá trị của \(y\) khi \(x = 0\); \(b_1 = 5.07\) là hệ số góc (độ dốc/slope/coefficicent) đại diện cho mức độ tăng (hay giảm) của biến \(y\) khi \(x\) tăng lên 1 đơn vị.
Thông thường ta chỉ có thể dự đoán được biến \(y\) trong khoảng cho trước của biến \(x\) gọi là phương pháp nội suy (interpolate), các giá trị \(y\) được tính theo phương trình gọi là fitted values hay là predicted values của \(y\) (hay là giá trị \(y_{dự~đoán}\)).
Nếu cho biến \(x\) nằm ngoài khoảng giá trị của biến \(x\) ban đầu dùng xây dựng mô hình thì khi ta dự đoán biến \(y\) sẽ không chính xác (vì không đảm bảo ngoài khoảng đó thì mối quan hệ giữa \(x\) và \(y\) còn tuyến tính hay không), phương pháp ngoại suy (extrapolate) khi áp dụng cho mô hình hồi quy tuyến tính cần rất thận trọng.
There are certain guidelines for regression lines3
Use regression lines when there is a significant correlation to predict values.
Do not use if there is not a significant correlation.
Stay within the range of the data. Do not extrapolate!! For example, if the data is from 10 to 60, do not predict a value for 400.
Do not make predictions for a population based on another population’s regression line.
Khoảng chênh lệch giữa \(y_{thực~nghiệm}\) (actual observed values of \(y\)) trừ đi \(y_{dự~đoán}\) gọi là phần dư, residuals hay là sai số errors.
Phương trình đường thẳng \(y = -36.94 + 5.07 \times x\) gọi là line of best fit là một trong rất nhiều đường tuyến tính có thể có để “fit” hay là “đi qua nhiều điểm nhất với ít sai số nhất”. Việc ước lượng giá trị \(\beta_0\) và \(\beta_1\) để tìm ra giá trị \(b_0\) và \(b_1\) với p-value có ý nghĩa thống kê được gọi là quá trình xây dựng mô hình hồi quy tuyến tính.
Important
Normally we then predict values for \(y\) based on values of \(x\). This still does not mean that \(y\) is caused by \(x\).
Remember, correlation does not imply causation.
Phân tích tương quan hay phân tích hồi quy không ngụ ý là hai biến \(x\) và \(y\) có mối quan hệ nhân quả (vì có \(x\) nên mới có \(y\)) mà muốn xác định quan hệ nhân quả (cause-and-effect relationship) giữa hai biến này ta cần làm thêm một số bước phân tích về cơ chế cũng như bố trí thí nghiệm theo khối ngẫu nhiên.4, 5
Phân tích kỹ hơn
Công thức hồi quy tuyến tính với hệ số góc \(\beta_1\) và hệ số chặn \(\beta_0\) là chỉ số của quần thể (population statistics), ký hiệu là chữ cái Hy Lạp.
\[y = \beta_0 + \beta_1 \times x\]
Điều này có nghĩa là ta có nhiều hơn 1 hệ số góc và 1 hệ số chặn để tạo thành đường hồi quy tuyến tính, hệ số góc và hệ số chặn được tìm ra bằng phương pháp bình phương tối thiểu hay bằng phương pháp nào khác được ký hiệu với dấu mũ (hat).
\[y = \hat{\beta_0} + \hat{\beta_1} \times x\]
Hay được viết theo kiểu thông thường là:
\[y = b_0 + b_1 \times x\]
\(b_0\) và \(b_1\) gọi là hệ số chặn và hệ số góc của đường best-fitting line.
3 Phân tích hồi quy tuyến tính trong R
3.1 Bước 1: Phân tích dataset
trees -> dfnames(df) <-c("duong_kinh", "chieu_cao", "the_tich")df
duong_kinh chieu_cao the_tich
Min. : 8.30 Min. :63 Min. :10.20
1st Qu.:11.05 1st Qu.:72 1st Qu.:19.40
Median :12.90 Median :76 Median :24.20
Mean :13.25 Mean :76 Mean :30.17
3rd Qu.:15.25 3rd Qu.:80 3rd Qu.:37.30
Max. :20.60 Max. :87 Max. :77.00
Mô hình hồi quy tuyến tính cần được đáp ứng các giả định sau6, 7, 8, 9
There are four principal assumptions which justify the use of linear regression models for purposes of inference or prediction:
1/ linearity and additivity of the relationship between dependent and independent variables:
1.1/ The expected value of dependent variable is a straight-line function of each independent variable, holding the others fixed.
1.2/ The slope of that line does not depend on the values of the other variables.
1.3/ The effects of different independent variables on the expected value of the dependent variable are additive.
2/ statistical independence of the errors (in particular, no correlation between consecutive errors in the case of time series data)
3/ homoscedasticity (constant variance) of the errors
3.1/ Versus time (in the case of time series data)
3.2/ Versus the predictions
3.3/ Versus any independent variable
4/ normality of the error distribution.
Việc đáp ứng được các giả định này rất quan trọng để đảm bảo kết quả ước lượng “gần” với thực tế, nếu mô hình hồi quy tuyến tính violate/không thỏa mãn các giả định trên thì kết quả ước lượng sẽ bị sai lệch (biased), dự đoán kém chính xác.
Đánh giá mô hình hồi quy tốt hay không (đáp ứng tiêu chí về độ nhạy, độ chính xác) thì ta sẽ thực hiện bước validate mô hình được đề cập ở phần sau.
4 Kiểm tra giả định về mối quan hệ giữa biến độc lập và biến phụ thuộc có là tuyến tính
4.1 Cách 1: Phân tích tương quan
Trong dataset này, ta chọn biến \(x\) là duong_kinh, biến \(y\) là the_tich, để đánh giá mức độ tuyến tính giữa hai biến này, sử dụng function cor() với method là pearson.
plot(x = df$duong_kinh,y = df$the_tich,col ="red",pch =1,xlab ="Đường kính",ylab ="Thể tích",main ="Tương quan giữa đường kính và thể tích của cây black cherry")
Để thực hiện kiểm tra giả thuyết về phần dư (errors / residuals) ta cần phải xây dựng mô hình hồi quy tuyến tính thì mới có giá trị \(y_{dự~đoán}\) nhằm so sánh với \(y_{thực~nghiệm}\). Bản chất của việc đánh giá đặc điểm của phần dư này (có phân bố chuẩn không, phương sai có thay đổi hay là hằng số) chính là một phần trong các bước để validate/kiểm tra xem model này hoạt động của chính xác với giá trị thực hay không.
Ta có thể chia bộ dữ liệu ra 80% để xây dựng model (dataset train), còn lại 20% (dataset test) để kiểm tra lại xem model có dự đoán chính xác hay không. Cách tiếp cận này liên quan đến khái niệm overfitting và underfitting.
Ngắn gọn thì underfitting là model được xây dựng từ dataset train không dự đoán chính xác giá trị trong cả dataset train và dataset test, do đó model bị underfitting thì không chính xác, không sử dụng được. Còn overfitting là model dự đoán chính xác ở dataset train nhưng không dự đoán tốt ở dataset test, như vậy cũng không chính xác trong thực tế. Model có khả năng dự đoán tốt cả ở dataset train và test gọi là cần được trải qua kiểm định độ phù hợp goodness of fit.
fit <-lm(formula = the_tich ~ duong_kinh,data = df)summary(fit)
Call:
lm(formula = the_tich ~ duong_kinh, data = df)
Residuals:
Min 1Q Median 3Q Max
-8.065 -3.107 0.152 3.495 9.587
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -36.9435 3.3651 -10.98 7.62e-12 ***
duong_kinh 5.0659 0.2474 20.48 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 4.252 on 29 degrees of freedom
Multiple R-squared: 0.9353, Adjusted R-squared: 0.9331
F-statistic: 419.4 on 1 and 29 DF, p-value: < 2.2e-16
Hệ số R bình phương cung cấp thông tin về độ phù hợp của đường hồi quy, goodness of fit of a model10. Vì vậy đây là hệ số mang tính quyết định đến chất lượng hồi quy của model (coefficient of determination).
\(R^2 = 0.93\) có nghĩa là 93% thay đổi/biến động của \(y\) là do \(x\) gây ra khi \(x\) tăng 1 đơn vị (93% of the variation in the \(y\) values is accounted for by the \(x\) values)11.
Phân biệt giữa \(Multiple~R^2\), \(R~Square\) và \(Adjusted~R^2\) (tham khảo12, 13). Hệ số R bình phương có thể tính bằng hai cách sau:
5.1.1 Tính trực tiếp từ hệ số tương quan tuyến tính: \(Multiple~R^2 = r^2\)
# sum squared regressionssr <-sum((df$the_tich - df$the_tich_dudoan)^2)# total sum of squaressst <-sum((df$the_tich -mean(df$the_tich))^2)
Tính \(R^2\)
1- ssr/sst
[1] 0.9353199
identical(r_p^2, 1- ssr/sst)
[1] FALSE
all.equal(r_p^2, 1- ssr/sst)
[1] TRUE
# chênh lệch này do decimal tính toán của máy tínhr_p^2- (1- ssr/sst)
[1] -1.110223e-16
5.2 Cách tính hệ số \(Adjusted~R^2\)
Hệ số R bình phương điều chỉnh, được “adjust” theo số lượng biến \(x\) trong model, dùng để so sánh giữa các model khi có nhiều biến được đưa vào thì model nào có \(Adjusted~R^2\) cao thì dự đoán chính xác hơn14.
The \(y\) variable is often termed the criterion variable and the \(x\) variable the predictor variable. The slope \(b_1\) is often called the regression coefficient (hệ số hồi quy) and the intercept \(b_0\) the regression constant (hằng số hồi quy)15.
Theo công thức này ta thấy rõ ảnh hưởng của số lượng mẫu quan sát đến sai số khi dự đoán. In this case the error is less than 2% when \(n > 26\) and less than 1% when \(n > 51\). However, it is 10% or larger when \(n < 8\)
So sánh với cách tính residual standard error bằng R
# Residual standard error: 4.252 on 29 degrees of freedomunclass(summary(fit))$sigma
[1] 4.251988
Nghĩa là kết quả dự đoán có độ lệch chuẩn so với giá trị thực nghiệm là 4.25
Tip
The standard error is small when the correlation is high. This increases the accuracy of prediction.
When we consider multiple distributions it is often assumed that their standard deviations are equal.
This property is called homoscedasticity.
We often consider the conditional distribution or distribution of all y scores with the same value of x.
If we assume these conditional distributions are all normal and homoscedastic, we can make probabilistic statements about the predicted scores.
The standard deviation we use is the standard error calculated above.
6 Kiểm tra giả định về phần dư của mô hình tuyến tính